[INFO] cloning repository https://github.com/spavikevik/stereo
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/spavikevik/stereo" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fspavikevik%2Fstereo", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fspavikevik%2Fstereo'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e5c8f1866d606b7e2f23aa039c3a05988014b6d3
[INFO] checking spavikevik/stereo against try#b152f5575a2ac7126ae0019e4e679abe9399213e for pr-157841
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fspavikevik%2Fstereo" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-3-tc2/source/rust-toolchain
[INFO] started tweaking git repo https://github.com/spavikevik/stereo
[INFO] finished tweaking git repo https://github.com/spavikevik/stereo
[INFO] tweaked toml for git repo https://github.com/spavikevik/stereo written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/spavikevik/stereo on toolchain b152f5575a2ac7126ae0019e4e679abe9399213e
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b152f5575a2ac7126ae0019e4e679abe9399213e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/spavikevik/stereo already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b152f5575a2ac7126ae0019e4e679abe9399213e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded pest_generator v2.8.0
[INFO] [stderr]   Downloaded pest_meta v2.8.0
[INFO] [stderr]   Downloaded pest_derive v2.8.0
[INFO] [stderr]   Downloaded pest v2.8.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3e793bdf10248eb2ddbd6b0faebed8155c11b4589982e2893733958d93e8d540" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] d9da559f54aee4301c3cac14525b15f1c29516984b1002b0e254278d00ecc5a7
[INFO] running `Command { std: "docker" "start" "d9da559f54aee4301c3cac14525b15f1c29516984b1002b0e254278d00ecc5a7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d9da559f54aee4301c3cac14525b15f1c29516984b1002b0e254278d00ecc5a7" "/opt/rustwide/cargo-home/bin/cargo" "+b152f5575a2ac7126ae0019e4e679abe9399213e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d9da559f54aee4301c3cac14525b15f1c29516984b1002b0e254278d00ecc5a7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d9da559f54aee4301c3cac14525b15f1c29516984b1002b0e254278d00ecc5a7" "/opt/rustwide/cargo-home/bin/cargo" "+b152f5575a2ac7126ae0019e4e679abe9399213e" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling thiserror v2.0.12
[INFO] [stderr]    Compiling memchr v2.6.4
[INFO] [stderr]    Compiling proc-macro2 v1.0.95
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling syn v2.0.100
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]    Compiling pest v2.8.0
[INFO] [stderr]    Compiling pest_meta v2.8.0
[INFO] [stderr]    Compiling pest_generator v2.8.0
[INFO] [stderr]    Compiling pest_derive v2.8.0
[INFO] [stderr]     Checking lang v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused macro definition: `int_lit`
[INFO] [stdout]  --> src/syntax/ast_helpers.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | macro_rules! int_lit {
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `int_lit`
[INFO] [stdout]  --> src/syntax/ast_helpers.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) use int_lit;
[INFO] [stdout]   |                ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `string_lit`
[INFO] [stdout]  --> src/syntax/ast_helpers.rs:8:14
[INFO] [stdout]   |
[INFO] [stdout] 8 | macro_rules! string_lit {
[INFO] [stdout]   |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `string_lit`
[INFO] [stdout]   --> src/syntax/ast_helpers.rs:13:16
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub(crate) use string_lit;
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `bool_lit`
[INFO] [stdout]   --> src/syntax/ast_helpers.rs:15:14
[INFO] [stdout]    |
[INFO] [stdout] 15 | macro_rules! bool_lit {
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bool_lit`
[INFO] [stdout]   --> src/syntax/ast_helpers.rs:20:16
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub(crate) use bool_lit;
[INFO] [stdout]    |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `named`
[INFO] [stdout]   --> src/syntax/ast_helpers.rs:22:14
[INFO] [stdout]    |
[INFO] [stdout] 22 | macro_rules! named {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `named`
[INFO] [stdout]   --> src/syntax/ast_helpers.rs:27:16
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub(crate) use named;
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `let_expr`
[INFO] [stdout]   --> src/syntax/ast_helpers.rs:29:14
[INFO] [stdout]    |
[INFO] [stdout] 29 | macro_rules! let_expr {
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `let_expr`
[INFO] [stdout]   --> src/syntax/ast_helpers.rs:34:16
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub(crate) use let_expr;
[INFO] [stdout]    |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `param`
[INFO] [stdout]   --> src/syntax/ast_helpers.rs:36:14
[INFO] [stdout]    |
[INFO] [stdout] 36 | macro_rules! param {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `param`
[INFO] [stdout]   --> src/syntax/ast_helpers.rs:49:16
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub(crate) use param;
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `type_param`
[INFO] [stdout]   --> src/syntax/ast_helpers.rs:51:14
[INFO] [stdout]    |
[INFO] [stdout] 51 | macro_rules! type_param {
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `type_param`
[INFO] [stdout]   --> src/syntax/ast_helpers.rs:64:16
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub(crate) use type_param;
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `lambda`
[INFO] [stdout]   --> src/syntax/ast_helpers.rs:66:14
[INFO] [stdout]    |
[INFO] [stdout] 66 | macro_rules! lambda {
[INFO] [stdout]    |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `lambda`
[INFO] [stdout]   --> src/syntax/ast_helpers.rs:85:16
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub(crate) use lambda;
[INFO] [stdout]    |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `infix`
[INFO] [stdout]   --> src/syntax/ast_helpers.rs:87:14
[INFO] [stdout]    |
[INFO] [stdout] 87 | macro_rules! infix {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `infix`
[INFO] [stdout]   --> src/syntax/ast_helpers.rs:92:16
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub(crate) use infix;
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `application`
[INFO] [stdout]   --> src/syntax/ast_helpers.rs:94:14
[INFO] [stdout]    |
[INFO] [stdout] 94 | macro_rules! application {
[INFO] [stdout]    |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `application`
[INFO] [stdout]    --> src/syntax/ast_helpers.rs:105:16
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub(crate) use application;
[INFO] [stdout]     |                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Expression` is never used
[INFO] [stdout]  --> src/syntax/ast.rs:2:10
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub enum Expression {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `infix_operation`, `prefix_operation`, and `postfix_operation` are never used
[INFO] [stdout]   --> src/syntax/ast.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Expression {
[INFO] [stdout]    | --------------- associated functions in this implementation
[INFO] [stdout] 19 |     pub fn infix_operation(operator: Expression, lhs: Expression, rhs: Expression) -> Expression {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn prefix_operation(operator: Expression, arg: Expression) -> Expression {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn postfix_operation(operator: Expression, arg: Expression) -> Expression {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OperatorMetadata` is never constructed
[INFO] [stdout]   --> src/syntax/ast.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct OperatorMetadata {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AffixPosition` is never used
[INFO] [stdout]   --> src/syntax/ast.rs:45:10
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub enum AffixPosition {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Associativity` is never used
[INFO] [stdout]   --> src/syntax/ast.rs:52:10
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub enum Associativity {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TypeParam` is never constructed
[INFO] [stdout]   --> src/syntax/ast.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct TypeParam {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `new_typed` are never used
[INFO] [stdout]   --> src/syntax/ast.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | impl TypeParam {
[INFO] [stdout]    | -------------- associated functions in this implementation
[INFO] [stdout] 64 |     pub fn new(name: String) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn new_typed(name: String, type_expr: Expression) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Param` is never constructed
[INFO] [stdout]   --> src/syntax/ast.rs:80:12
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub struct Param {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `new_typed` are never used
[INFO] [stdout]   --> src/syntax/ast.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 85 | impl Param {
[INFO] [stdout]    | ---------- associated functions in this implementation
[INFO] [stdout] 86 |     pub fn new(name: String) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 93 |     pub fn new_typed(name: String, type_expr: Expression) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ArgList` is never constructed
[INFO] [stdout]    --> src/syntax/ast.rs:102:12
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub struct ArgList {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ParamList` is never constructed
[INFO] [stdout]    --> src/syntax/ast.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub struct ParamList {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_type_param`, `add_param`, `set_params`, and `set_type_params` are never used
[INFO] [stdout]    --> src/syntax/ast.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | impl ParamList {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 113 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn add_type_param(self, type_param: TypeParam) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn add_param(self, param: Param) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn set_params(self, params: Vec<Param>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn set_type_params(self, type_params: Vec<TypeParam>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Program` is never constructed
[INFO] [stdout]    --> src/syntax/ast.rs:156:12
[INFO] [stdout]     |
[INFO] [stdout] 156 | pub struct Program {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PestParser` is never constructed
[INFO] [stdout]   --> src/syntax/pest_parser.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct PestParser<'a> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/syntax/pest_parser.rs:20:8
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl<'a> PestParser<'a> {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout]  20 |     fn build_ast_from_expr(&self, pair: &Pair<Rule>) -> Expression {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  25 |     fn pratt(
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  38 |     fn pratt_loop(
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     fn get_op_metadata(&self, pair: Pair<Rule>) -> OperatorMetadata {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn build_primary_expr(&self, pair: Pair<Rule>) -> Expression {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     fn extract_operator(&self, pair: Pair<Rule>) -> Expression {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     fn build_let_expr(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 193 |     fn build_lambda_expr(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 227 |     fn build_return_type_expr(&self, type_expr: Pair<Rule>) -> Option<Box<Expression>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     fn build_type_params(&self, type_params_opt: Option<Pair<Rule>>) -> Vec<TypeParam> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     fn build_type_param(&self, pair: Pair<Rule>) -> TypeParam {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 265 |     fn build_param(&self, pair: Pair<Rule>) -> Param {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     fn build_application_expr(&self, identifier: Pair<Rule>, call: Pair<Rule>) -> Expression {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 295 |     fn build_arg_list(&self, call: Pair<Rule>) -> Vec<Expression> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 304 |     fn build_arg(&self, pair: Pair<Rule>) -> Expression {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub fn parse_expr(&self, input: &str) -> Result<Vec<Expression>, Error<Rule>> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 325 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 331 |     pub fn new_with_operator_metadata(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Inference` is never used
[INFO] [stdout]  --> src/typesystem/inference.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum Inference {
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `into_tuple` is never used
[INFO] [stdout]   --> src/typesystem/inference.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl Inference {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] 10 |     pub fn into_tuple(self) -> (Type, Substitution) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Substitution` is never constructed
[INFO] [stdout]  --> src/typesystem/substitution.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Substitution {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `from_iter`, `filter_type_vars`, and `compose` are never used
[INFO] [stdout]   --> src/typesystem/substitution.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl Substitution {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 10 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn from_iter<I: Iterator<Item = (String, Type)>>(it: I) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn filter_type_vars(&self, type_vars: &Vec<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn compose(&self, other: &Substitution) -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Substitutable` is never used
[INFO] [stdout]   --> src/typesystem/substitution.rs:54:11
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub trait Substitutable {
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Type` is never used
[INFO] [stdout]  --> src/typesystem/type.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub enum Type {
[INFO] [stdout]   |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PrimitiveType` is never used
[INFO] [stdout]   --> src/typesystem/type.rs:53:10
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub enum PrimitiveType {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TypeScheme` is never constructed
[INFO] [stdout]   --> src/typesystem/type.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct TypeScheme {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_type` and `add_type_vars` are never used
[INFO] [stdout]   --> src/typesystem/type.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 67 | impl TypeScheme {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 68 |     pub fn from_type(tpe: Type) -> TypeScheme {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn add_type_vars(&mut self, type_vars: &mut Vec<String>) -> () {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TypeEnvironment` is never constructed
[INFO] [stdout]  --> src/typesystem/type_environment.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct TypeEnvironment {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_type_alias`, `add_type_binding`, `add_binding`, and `remove_binding` are never used
[INFO] [stdout]   --> src/typesystem/type_environment.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl TypeEnvironment {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] 13 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn add_type_alias(&mut self, name: String, tpe: Type) -> () {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn add_type_binding(&mut self, name: String, tpe: Type) -> () {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn add_binding(&mut self, name: String, tpe: TypeScheme) -> () {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn remove_binding(&mut self, name: &str) -> () {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TypeError` is never used
[INFO] [stdout]  --> src/typesystem/type_error.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub enum TypeError {
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `into_error_report` is never used
[INFO] [stdout]   --> src/typesystem/type_error.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl TypeError {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] 15 |     pub fn into_error_report(self) -> TypeErrorReport {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TypeErrorReport` is never constructed
[INFO] [stdout]   --> src/typesystem/type_error.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct TypeErrorReport {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_error`, `add_context`, and `get_errors` are never used
[INFO] [stdout]   --> src/typesystem/type_error.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl TypeErrorReport {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] 45 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn add_error(&mut self, type_error: TypeError) -> () {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn add_context(&mut self, ast: Expression, env: TypeEnvironment) -> () {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn get_errors(&self) -> &Vec<TypeError> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `InferenceResult` is never used
[INFO] [stdout]   --> src/typesystem/typer.rs:11:6
[INFO] [stdout]    |
[INFO] [stdout] 11 | type InferenceResult = Result<Inference, TypeErrorReport>;
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Typer` is never constructed
[INFO] [stdout]   --> src/typesystem/typer.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct Typer {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/typesystem/typer.rs:19:12
[INFO] [stdout]     |
[INFO] [stdout]  18 | impl Typer {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout]  19 |     pub fn new(builtins: TypeEnvironment) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  26 |     pub fn infer_and_panic(&self, expression: Expression, env: TypeEnvironment) -> Type {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  32 |     pub fn infer(
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  42 |     fn ti(&self, expression: Expression, env: TypeEnvironment) -> InferenceResult {
[INFO] [stdout]     |        ^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     fn unify(&self, tpe1: Type, tpe2: Type) -> Result<Substitution, TypeErrorReport> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     fn are_types_isomorphic(&self, tpe1: Type, tpe2: Type) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     fn instantiate(&self, scheme: TypeScheme) -> Type {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     fn new_type_var(&self, prefix: String) -> Type {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     fn unify_bind_type_var(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     fn eval_type_expr(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     fn get_builtin_type(&self, name: &str) -> Option<Type> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     fn collect_param_env(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/syntax/pest_parser.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |         &self,
[INFO] [stdout]    |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 29 |     ) -> (Expression, Pairs<Rule>) {
[INFO] [stdout]    |                       ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 29 |     ) -> (Expression, Pairs<'_, Rule>) {
[INFO] [stdout]    |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/syntax/ast_helpers.rs:69:17
[INFO] [stdout]     |
[INFO] [stdout]  69 |             let mut type_params = Vec::new();
[INFO] [stdout]     |                 ----^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/typesystem/typer.rs:410:17
[INFO] [stdout]     |
[INFO] [stdout] 410 |                 lambda! { "identity", { param!("x": named!("int")) } -> named!("int"), body: named!("x") },
[INFO] [stdout]     |                 ------------------------------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]     = note: this warning originates in the macro `lambda` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/syntax/ast_helpers.rs:72:17
[INFO] [stdout]     |
[INFO] [stdout]  72 |             let mut op_metadata = None;
[INFO] [stdout]     |                 ----^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/typesystem/typer.rs:410:17
[INFO] [stdout]     |
[INFO] [stdout] 410 |                 lambda! { "identity", { param!("x": named!("int")) } -> named!("int"), body: named!("x") },
[INFO] [stdout]     |                 ------------------------------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `lambda` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `name` is never read
[INFO] [stdout]    --> src/syntax/ast_helpers.rs:71:28
[INFO] [stdout]     |
[INFO] [stdout]  71 |             let mut name = None;
[INFO] [stdout]     |                            ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout]  75 |             $( name = Some($name.to_string()); )?
[INFO] [stdout]     |                ---- `name` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/typesystem/typer.rs:410:17
[INFO] [stdout]     |
[INFO] [stdout] 410 |                 lambda! { "identity", { param!("x": named!("int")) } -> named!("int"), body: named!("x") },
[INFO] [stdout]     |                 ------------------------------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]     = note: this warning originates in the macro `lambda` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `return_tpe` is never read
[INFO] [stdout]    --> src/syntax/ast_helpers.rs:73:34
[INFO] [stdout]     |
[INFO] [stdout]  73 |             let mut return_tpe = None;
[INFO] [stdout]     |                                  ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout]  80 |             $( return_tpe = Some(Box::new($return_tpe)); )?
[INFO] [stdout]     |                ---------- `return_tpe` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/typesystem/typer.rs:410:17
[INFO] [stdout]     |
[INFO] [stdout] 410 |                 lambda! { "identity", { param!("x": named!("int")) } -> named!("int"), body: named!("x") },
[INFO] [stdout]     |                 ------------------------------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `lambda` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `type_expr` is never read
[INFO] [stdout]    --> src/syntax/ast_helpers.rs:39:33
[INFO] [stdout]     |
[INFO] [stdout]  39 |             let mut type_expr = None;
[INFO] [stdout]     |                                 ^^^^ this value is reassigned later and never used
[INFO] [stdout]  40 |             $( type_expr = Some($tpe); )?
[INFO] [stdout]     |                --------- `type_expr` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/typesystem/typer.rs:410:41
[INFO] [stdout]     |
[INFO] [stdout] 410 |                 lambda! { "identity", { param!("x": named!("int")) } -> named!("int"), body: named!("x") },
[INFO] [stdout]     |                                         -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `param` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/syntax/ast_helpers.rs:69:17
[INFO] [stdout]     |
[INFO] [stdout]  69 |             let mut type_params = Vec::new();
[INFO] [stdout]     |                 ----^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/typesystem/typer.rs:427:17
[INFO] [stdout]     |
[INFO] [stdout] 427 |                 lambda! { "identity", { param!("x") } -> , body: named!("x") },
[INFO] [stdout]     |                 -------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `lambda` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/syntax/ast_helpers.rs:72:17
[INFO] [stdout]     |
[INFO] [stdout]  72 |             let mut op_metadata = None;
[INFO] [stdout]     |                 ----^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/typesystem/typer.rs:427:17
[INFO] [stdout]     |
[INFO] [stdout] 427 |                 lambda! { "identity", { param!("x") } -> , body: named!("x") },
[INFO] [stdout]     |                 -------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `lambda` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/syntax/ast_helpers.rs:73:17
[INFO] [stdout]     |
[INFO] [stdout]  73 |             let mut return_tpe = None;
[INFO] [stdout]     |                 ----^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/typesystem/typer.rs:427:17
[INFO] [stdout]     |
[INFO] [stdout] 427 |                 lambda! { "identity", { param!("x") } -> , body: named!("x") },
[INFO] [stdout]     |                 -------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `lambda` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/syntax/ast_helpers.rs:39:17
[INFO] [stdout]     |
[INFO] [stdout]  39 |             let mut type_expr = None;
[INFO] [stdout]     |                 ----^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/typesystem/typer.rs:427:41
[INFO] [stdout]     |
[INFO] [stdout] 427 |                 lambda! { "identity", { param!("x") } -> , body: named!("x") },
[INFO] [stdout]     |                                         ----------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `param` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `name` is never read
[INFO] [stdout]    --> src/syntax/ast_helpers.rs:71:28
[INFO] [stdout]     |
[INFO] [stdout]  71 |             let mut name = None;
[INFO] [stdout]     |                            ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout]  75 |             $( name = Some($name.to_string()); )?
[INFO] [stdout]     |                ---- `name` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/typesystem/typer.rs:427:17
[INFO] [stdout]     |
[INFO] [stdout] 427 |                 lambda! { "identity", { param!("x") } -> , body: named!("x") },
[INFO] [stdout]     |                 -------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `lambda` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/syntax/ast_helpers.rs:69:17
[INFO] [stdout]     |
[INFO] [stdout]  69 |             let mut type_params = Vec::new();
[INFO] [stdout]     |                 ----^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/typesystem/typer.rs:444:17
[INFO] [stdout]     |
[INFO] [stdout] 444 |                 lambda! { "identity", { param!("x": named!("a")) } -> named!("a"), body: named!("x") },
[INFO] [stdout]     |                 -------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `lambda` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/syntax/ast_helpers.rs:72:17
[INFO] [stdout]     |
[INFO] [stdout]  72 |             let mut op_metadata = None;
[INFO] [stdout]     |                 ----^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/typesystem/typer.rs:444:17
[INFO] [stdout]     |
[INFO] [stdout] 444 |                 lambda! { "identity", { param!("x": named!("a")) } -> named!("a"), body: named!("x") },
[INFO] [stdout]     |                 -------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `lambda` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `name` is never read
[INFO] [stdout]    --> src/syntax/ast_helpers.rs:71:28
[INFO] [stdout]     |
[INFO] [stdout]  71 |             let mut name = None;
[INFO] [stdout]     |                            ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout]  75 |             $( name = Some($name.to_string()); )?
[INFO] [stdout]     |                ---- `name` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/typesystem/typer.rs:444:17
[INFO] [stdout]     |
[INFO] [stdout] 444 |                 lambda! { "identity", { param!("x": named!("a")) } -> named!("a"), body: named!("x") },
[INFO] [stdout]     |                 -------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `lambda` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `return_tpe` is never read
[INFO] [stdout]    --> src/syntax/ast_helpers.rs:73:34
[INFO] [stdout]     |
[INFO] [stdout]  73 |             let mut return_tpe = None;
[INFO] [stdout]     |                                  ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout]  80 |             $( return_tpe = Some(Box::new($return_tpe)); )?
[INFO] [stdout]     |                ---------- `return_tpe` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/typesystem/typer.rs:444:17
[INFO] [stdout]     |
[INFO] [stdout] 444 |                 lambda! { "identity", { param!("x": named!("a")) } -> named!("a"), body: named!("x") },
[INFO] [stdout]     |                 -------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `lambda` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `type_expr` is never read
[INFO] [stdout]    --> src/syntax/ast_helpers.rs:39:33
[INFO] [stdout]     |
[INFO] [stdout]  39 |             let mut type_expr = None;
[INFO] [stdout]     |                                 ^^^^ this value is reassigned later and never used
[INFO] [stdout]  40 |             $( type_expr = Some($tpe); )?
[INFO] [stdout]     |                --------- `type_expr` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/typesystem/typer.rs:444:41
[INFO] [stdout]     |
[INFO] [stdout] 444 |                 lambda! { "identity", { param!("x": named!("a")) } -> named!("a"), body: named!("x") },
[INFO] [stdout]     |                                         ------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `param` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/syntax/ast_helpers.rs:72:17
[INFO] [stdout]     |
[INFO] [stdout]  72 |             let mut op_metadata = None;
[INFO] [stdout]     |                 ----^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/typesystem/typer.rs:463:17
[INFO] [stdout]     |
[INFO] [stdout] 463 |                 lambda! { "identity", types: type_param!("a"), { param!("x": named!("a")) } -> named!("a"), body: named!("x") },
[INFO] [stdout]     |                 --------------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `lambda` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/syntax/ast_helpers.rs:54:17
[INFO] [stdout]     |
[INFO] [stdout]  54 |             let mut type_expr = None;
[INFO] [stdout]     |                 ----^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/typesystem/typer.rs:463:46
[INFO] [stdout]     |
[INFO] [stdout] 463 |                 lambda! { "identity", types: type_param!("a"), { param!("x": named!("a")) } -> named!("a"), body: named!("x") },
[INFO] [stdout]     |                                              ---------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `type_param` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `name` is never read
[INFO] [stdout]    --> src/syntax/ast_helpers.rs:71:28
[INFO] [stdout]     |
[INFO] [stdout]  71 |             let mut name = None;
[INFO] [stdout]     |                            ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout]  75 |             $( name = Some($name.to_string()); )?
[INFO] [stdout]     |                ---- `name` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/typesystem/typer.rs:463:17
[INFO] [stdout]     |
[INFO] [stdout] 463 |                 lambda! { "identity", types: type_param!("a"), { param!("x": named!("a")) } -> named!("a"), body: named!("x") },
[INFO] [stdout]     |                 --------------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `lambda` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `return_tpe` is never read
[INFO] [stdout]    --> src/syntax/ast_helpers.rs:73:34
[INFO] [stdout]     |
[INFO] [stdout]  73 |             let mut return_tpe = None;
[INFO] [stdout]     |                                  ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout]  80 |             $( return_tpe = Some(Box::new($return_tpe)); )?
[INFO] [stdout]     |                ---------- `return_tpe` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/typesystem/typer.rs:463:17
[INFO] [stdout]     |
[INFO] [stdout] 463 |                 lambda! { "identity", types: type_param!("a"), { param!("x": named!("a")) } -> named!("a"), body: named!("x") },
[INFO] [stdout]     |                 --------------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `lambda` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `type_expr` is never read
[INFO] [stdout]    --> src/syntax/ast_helpers.rs:39:33
[INFO] [stdout]     |
[INFO] [stdout]  39 |             let mut type_expr = None;
[INFO] [stdout]     |                                 ^^^^ this value is reassigned later and never used
[INFO] [stdout]  40 |             $( type_expr = Some($tpe); )?
[INFO] [stdout]     |                --------- `type_expr` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/typesystem/typer.rs:463:66
[INFO] [stdout]     |
[INFO] [stdout] 463 |                 lambda! { "identity", types: type_param!("a"), { param!("x": named!("a")) } -> named!("a"), body: named!("x") },
[INFO] [stdout]     |                                                                  ------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `param` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/syntax/ast_helpers.rs:69:17
[INFO] [stdout]     |
[INFO] [stdout]  69 |             let mut type_params = Vec::new();
[INFO] [stdout]     |                 ----^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/typesystem/typer.rs:480:17
[INFO] [stdout]     |
[INFO] [stdout] 480 |                 lambda! { "const", {param!("x": named!("int")); param!("y": named!("int"))} -> named!("int"), body: named!("x") },
[INFO] [stdout]     |                 ----------------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `lambda` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/syntax/ast_helpers.rs:72:17
[INFO] [stdout]     |
[INFO] [stdout]  72 |             let mut op_metadata = None;
[INFO] [stdout]     |                 ----^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/typesystem/typer.rs:480:17
[INFO] [stdout]     |
[INFO] [stdout] 480 |                 lambda! { "const", {param!("x": named!("int")); param!("y": named!("int"))} -> named!("int"), body: named!("x") },
[INFO] [stdout]     |                 ----------------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `lambda` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `name` is never read
[INFO] [stdout]    --> src/syntax/ast_helpers.rs:71:28
[INFO] [stdout]     |
[INFO] [stdout]  71 |             let mut name = None;
[INFO] [stdout]     |                            ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout]  75 |             $( name = Some($name.to_string()); )?
[INFO] [stdout]     |                ---- `name` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/typesystem/typer.rs:480:17
[INFO] [stdout]     |
[INFO] [stdout] 480 |                 lambda! { "const", {param!("x": named!("int")); param!("y": named!("int"))} -> named!("int"), body: named!("x") },
[INFO] [stdout]     |                 ----------------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `lambda` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `return_tpe` is never read
[INFO] [stdout]    --> src/syntax/ast_helpers.rs:73:34
[INFO] [stdout]     |
[INFO] [stdout]  73 |             let mut return_tpe = None;
[INFO] [stdout]     |                                  ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout]  80 |             $( return_tpe = Some(Box::new($return_tpe)); )?
[INFO] [stdout]     |                ---------- `return_tpe` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/typesystem/typer.rs:480:17
[INFO] [stdout]     |
[INFO] [stdout] 480 |                 lambda! { "const", {param!("x": named!("int")); param!("y": named!("int"))} -> named!("int"), body: named!("x") },
[INFO] [stdout]     |                 ----------------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `lambda` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `type_expr` is never read
[INFO] [stdout]    --> src/syntax/ast_helpers.rs:39:33
[INFO] [stdout]     |
[INFO] [stdout]  39 |             let mut type_expr = None;
[INFO] [stdout]     |                                 ^^^^ this value is reassigned later and never used
[INFO] [stdout]  40 |             $( type_expr = Some($tpe); )?
[INFO] [stdout]     |                --------- `type_expr` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/typesystem/typer.rs:480:37
[INFO] [stdout]     |
[INFO] [stdout] 480 |                 lambda! { "const", {param!("x": named!("int")); param!("y": named!("int"))} -> named!("int"), body: named!("x") },
[INFO] [stdout]     |                                     -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `param` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `type_expr` is never read
[INFO] [stdout]    --> src/syntax/ast_helpers.rs:39:33
[INFO] [stdout]     |
[INFO] [stdout]  39 |             let mut type_expr = None;
[INFO] [stdout]     |                                 ^^^^ this value is reassigned later and never used
[INFO] [stdout]  40 |             $( type_expr = Some($tpe); )?
[INFO] [stdout]     |                --------- `type_expr` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/typesystem/typer.rs:480:65
[INFO] [stdout]     |
[INFO] [stdout] 480 |                 lambda! { "const", {param!("x": named!("int")); param!("y": named!("int"))} -> named!("int"), body: named!("x") },
[INFO] [stdout]     |                                                                 -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `param` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/syntax/ast_helpers.rs:69:17
[INFO] [stdout]     |
[INFO] [stdout]  69 |             let mut type_params = Vec::new();
[INFO] [stdout]     |                 ----^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/typesystem/typer.rs:500:17
[INFO] [stdout]     |
[INFO] [stdout] 500 | ...   lambda! { "isEqual", {param!("x": named!("int")); param!("y": named!("int"))} -> named!("bool"), body: infix!("==", named!("x"), named!("y")) },
[INFO] [stdout]     |       ----------------------------------------------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `lambda` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/syntax/ast_helpers.rs:72:17
[INFO] [stdout]     |
[INFO] [stdout]  72 |             let mut op_metadata = None;
[INFO] [stdout]     |                 ----^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/typesystem/typer.rs:500:17
[INFO] [stdout]     |
[INFO] [stdout] 500 | ...   lambda! { "isEqual", {param!("x": named!("int")); param!("y": named!("int"))} -> named!("bool"), body: infix!("==", named!("x"), named!("y")) },
[INFO] [stdout]     |       ----------------------------------------------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `lambda` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `name` is never read
[INFO] [stdout]    --> src/syntax/ast_helpers.rs:71:28
[INFO] [stdout]     |
[INFO] [stdout]  71 |             let mut name = None;
[INFO] [stdout]     |                            ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout]  75 |             $( name = Some($name.to_string()); )?
[INFO] [stdout]     |                ---- `name` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/typesystem/typer.rs:500:17
[INFO] [stdout]     |
[INFO] [stdout] 500 | ...   lambda! { "isEqual", {param!("x": named!("int")); param!("y": named!("int"))} -> named!("bool"), body: infix!("==", named!("x"), named!("y")) },
[INFO] [stdout]     |       ----------------------------------------------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `lambda` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `return_tpe` is never read
[INFO] [stdout]    --> src/syntax/ast_helpers.rs:73:34
[INFO] [stdout]     |
[INFO] [stdout]  73 |             let mut return_tpe = None;
[INFO] [stdout]     |                                  ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout]  80 |             $( return_tpe = Some(Box::new($return_tpe)); )?
[INFO] [stdout]     |                ---------- `return_tpe` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/typesystem/typer.rs:500:17
[INFO] [stdout]     |
[INFO] [stdout] 500 | ...   lambda! { "isEqual", {param!("x": named!("int")); param!("y": named!("int"))} -> named!("bool"), body: infix!("==", named!("x"), named!("y")) },
[INFO] [stdout]     |       ----------------------------------------------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `lambda` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `type_expr` is never read
[INFO] [stdout]    --> src/syntax/ast_helpers.rs:39:33
[INFO] [stdout]     |
[INFO] [stdout]  39 |             let mut type_expr = None;
[INFO] [stdout]     |                                 ^^^^ this value is reassigned later and never used
[INFO] [stdout]  40 |             $( type_expr = Some($tpe); )?
[INFO] [stdout]     |                --------- `type_expr` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/typesystem/typer.rs:500:39
[INFO] [stdout]     |
[INFO] [stdout] 500 | ...   lambda! { "isEqual", {param!("x": named!("int")); param!("y": named!("int"))} -> named!("bool"), body: infix!("==", named!("x...
[INFO] [stdout]     |                             -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `param` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `type_expr` is never read
[INFO] [stdout]    --> src/syntax/ast_helpers.rs:39:33
[INFO] [stdout]     |
[INFO] [stdout]  39 |             let mut type_expr = None;
[INFO] [stdout]     |                                 ^^^^ this value is reassigned later and never used
[INFO] [stdout]  40 |             $( type_expr = Some($tpe); )?
[INFO] [stdout]     |                --------- `type_expr` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/typesystem/typer.rs:500:67
[INFO] [stdout]     |
[INFO] [stdout] 500 | ...   lambda! { "isEqual", {param!("x": named!("int")); param!("y": named!("int"))} -> named!("bool"), body: infix!("==", named!("x...
[INFO] [stdout]     |                                                         -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `param` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `prefix_operation` and `postfix_operation` are never used
[INFO] [stdout]   --> src/syntax/ast.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Expression {
[INFO] [stdout]    | --------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn prefix_operation(operator: Expression, arg: Expression) -> Expression {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn postfix_operation(operator: Expression, arg: Expression) -> Expression {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Pre` and `Post` are never constructed
[INFO] [stdout]   --> src/syntax/ast.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub enum AffixPosition {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout] 46 |     Pre,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 47 |     In,
[INFO] [stdout] 48 |     Post,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AffixPosition` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Program` is never constructed
[INFO] [stdout]    --> src/syntax/ast.rs:156:12
[INFO] [stdout]     |
[INFO] [stdout] 156 | pub struct Program {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_iter` is never used
[INFO] [stdout]   --> src/typesystem/substitution.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl Substitution {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn from_iter<I: Iterator<Item = (String, Type)>>(it: I) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TypeNotInContextError` is never constructed
[INFO] [stdout]   --> src/typesystem/type_error.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub enum TypeError {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 11 |     TypeNotInContextError(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TypeError` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `instantiate` is never used
[INFO] [stdout]    --> src/typesystem/typer.rs:153:8
[INFO] [stdout]     |
[INFO] [stdout]  18 | impl Typer {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 153 |     fn instantiate(&self, scheme: TypeScheme) -> Type {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/syntax/pest_parser.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |         &self,
[INFO] [stdout]    |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 29 |     ) -> (Expression, Pairs<Rule>) {
[INFO] [stdout]    |                       ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 29 |     ) -> (Expression, Pairs<'_, Rule>) {
[INFO] [stdout]    |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 9.03s
[INFO] running `Command { std: "docker" "inspect" "d9da559f54aee4301c3cac14525b15f1c29516984b1002b0e254278d00ecc5a7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d9da559f54aee4301c3cac14525b15f1c29516984b1002b0e254278d00ecc5a7", kill_on_drop: false }`
[INFO] [stdout] d9da559f54aee4301c3cac14525b15f1c29516984b1002b0e254278d00ecc5a7
